The present invention relates generally to a processor-based technique in the field of color image processing, and, more particularly, to a technique for determining an optimal color space modulation that satisfies a set of constraints; the color space modulation is given by a direction in color space away from a given input color. The color space direction is optimal when a measured color difference between the input color and a second color defined by the direction away from the input color simultaneously minimizes perception by a human viewer and maximizes detection by a digital image capture device.
Commonly-assigned pending U.S. patent application, Ser. No. 08/534,521, is hereby incorporated by reference herein for all that it teaches and is hereafter referred to as the `521 application. The `521 application, entitled "Binary Glyph Codes Based on Color Relationships," discloses a technique that may be used to encode information in a color image. The technique renders binary digital data on a display device, such as a sheet of paper, by printing a series of color patches on the sheet, with the 1 bits rendered as color patches of a first color and the 0 bits rendered as color patches of the second color. The color patches are arranged in a predetermined order along an axis on the surface. The second color relates to the first color by a fixed relationship in color space. In an illustrated embodiment, the first and second colors are a scalar .alpha. distance away from a color c along a vector v.sub.0 in color space. The color patches can be intermixed with areas of a third color, the third color representing an average in color space of the first color and the second color. When the differences in the color patches of two different colors are imperceptible to a human, the information they represent becomes invisibly encoded in the image.
The `521 application discloses that one could also print each individual color patch in the form of a geometric data glyph, wherein the shape or linear orientation of each glyph determines whether it is assigned a 1 or 0 value, and where the different shading of each character represents a different color. Geometric data glyph technology is a category of embedded encoded information that is particularly advantageous for use in image applications that require the embedded data to be robust for decoding purposes yet inconspicuous, or even surreptitious, in the resulting image. Data glyph technology encodes digital information in the form of binary 1's and 0's which are then rendered in the form of very small linear marks. Generally, each small mark represents a digit of binary data; whether the particular digit is a digital 1 or 0 depends on the linear orientation of the particular mark. For example, in one embodiment, marks which are oriented from top left to bottom right may represent a 0, while marks oriented from bottom left to top right may represent a 1. In the case of black and white images, the individual marks are of such a size relative to the maximum resolution of a black and white printing device as to produce an overall visual effect to a casual observer of a uniformly gray halftone area when a large number of such marks are printed together in a black and white image on paper; when incorporated in an image border or graphic, this uniformly gray halftone area does not explicitly suggest that embedded data is present in the document. A viewer of the image could perhaps detect by very close scrutiny that the small dots forming the gray halftone area are a series of small marks which together bear binary information. The uniformly gray halftone area may already be an element of the image, or it may be added to the image in the form of a border, a logo, or some other image element suitable to the nature of the document. Several U.S. Patents cited in the the `521 application, which are all assigned to the assignee of the present invention, provide additional information about the uses, encoding and decoding techniques of data glyphs. For example, U.S. Pat. No. 5,315,098, entitled "Methods and Means for Embedding Machine Readable Digital Data in Halftone Images," discloses techniques for encoding digital data in the angular orientation of circularly asymmetric halftone dot patterns that are written into the halftone cells of digital halftone images.
The `521 application proposes that each individual color patch be printed in the form of a geometric data glyph wherein the shape or linear orientation of each glyph determines whether it is assigned a 1 or 0 value, and where different colors of each glyph determines whether the color is assigned a 1 or 0 value. Similarly, an individual data glyph mark is given one color and the field surrounding it is given a second color. The relative assignment of these colors determines either a 1 or 0 value. The relative colors of neighboring glyphs are independent of the orientations of neighboring glyphs, and so the geometry-based glyphs can be used to render one set of data, while the relative colors of neighboring glyphs, or glyphs and their backgrounds, render another set of digital data.
With regard to the illustrated embodiments in the `521 application, it is noted that, in the choice of orientation of the vector v.sub.0 and the extent of the scalar .alpha. that are used to determine the two colors that are used to produce the color patches, it is desirable to balance the accuracy and sensitivity of the rendering or display device (e.g., a printer) and the digital image capture device (e.g., a scanner) being used with the sensitivity of the human eye. It is desirable to have the deviation between the two colors to be maximally detectable by a scanner and minimally detectable by the human eye. When an average color of the two colors is rendered on the page and is visible to the human eye, the average color should be deemed merely the carrier of information, and the color deviations of neighboring color patches being a modulation of the carrier.
The `521 application provides a heuristic approach to selection of the color space direction, v.sub.0, and the scalar, .alpha., by noting that, in practical embodiments of the invention, it may be desirable to select the orientation of vector v.sub.0 and/or the scalar .alpha. based on the absolute value of a desired average color, c, around which the modulations .+-..alpha.v.sub.0 occur. Different average colors may be reproduced or detected with different peculiarities or common errors when printed or scanned on certain types of equipment. For example, given a certain set of printing and/or scanning equipment, the rendering of the precisely desired amount of yellow is difficult to obtain; in such a case, the lack of accuracy in printing or detecting yellow could be compensated for by using a value of .alpha. which increases depending on the amount of yellow in the average color. In this way, the large difference in color-space among color patches (caused by the large .alpha.) compensates for the lack of optical acuity in detecting yellow. For colors which are relatively easy for the scanner to discriminate, such as red, a smaller value of .alpha. will suffice, and a smaller a will be less conspicuous in a printed document.
While this heuristic and empirical approach to selecting a color space direction for v.sub.0 is generally useful, there is a need to provide a more rigorous approach to determining the orientation of v.sub.0 in color space, and the `521 application does not provide such a rigorous approach.